package com.wulis.config.mybatis.plus;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.wulis.config.mybatis.plus.method.InsertBatchDuplicateKeyUpdate;
import com.wulis.config.mybatis.plus.method.InsertDuplicateKeyUpdate;
import org.apache.ibatis.session.Configuration;

import java.util.List;

/**
 * @author WuliBao
 */
public class LogicSqlInjector extends DefaultSqlInjector {

    /**
     * 如果只需增加方法，保留MP自带方法 可以super.getMethodList() 再add
     * 
     * @return List<AbstractMethod>
     */
    @Override
    public List<AbstractMethod> getMethodList(Configuration configuration, Class<?> mapperClass, TableInfo tableInfo) {
        List<AbstractMethod> methodList = super.getMethodList(configuration, mapperClass, tableInfo);
        // 存在则更新
        methodList.add(new InsertDuplicateKeyUpdate());
        // 存在则更新(批量)
        methodList.add(new InsertBatchDuplicateKeyUpdate());
        return methodList;
    }
}